The present application relates to the color imaging arts. It finds particular application to color conversion from a device independent color space to a device dependent color space.
Heretofore, computers and other electronic equipment have provided a target color to image forming machines, such as color printers, for reproduction in color images, such as color prints. The target color is typically defined in a device independent color space, an example of which can include L*A*B* color space. The printer includes an imaging path which converts the target color from the device independent L*A*B* color space to a device dependent color space, such as for example CMYK for a CMYK printer, so that the printer can reproduce the target color as an output color in the color image it produces.
The printer color conversion is usually composed of several one-dimensional (1-D) mappings, possibly one matrix multiplication, and one multi-dimensional mapping. The 1-D mappings are implemented as Tonal Reproduction Curve (TRC) look up tables (LUTs), while the multi-dimensional mapping is implemented as an multi-dimensional LUT plus interpolation operations. The multi-dimensional LUT is typically 3-dimensional in input and 4-dimensional (for CMYK) in output. It is organized to store a sampled version of the color mapping function on a 3-dimensional grid.
The color mapping function provides relationships between L*A*B* and CMYK color spaces. Specifically, it tells which CMYK combination may produce a particular L*A*B* color. When a color is to be mapped, the grid points that define the smallest cell containing the color are located. The LUT provides the converted color for the grid points, and the output color is linearly interpolated from these grid point colors.
For a CMYK printer, one L*A*B* color can typically be produced with more than one CMYK ink set. UCR/GCR (Undercolor Removal/Gray Color Replacement) is the procedure that selects one CMYK set from the multiple ink sets. The UCR/GCR decision is often optimized for printer gamut, ink consumption, text sharpness and other considerations.
The color mapping from L*A*B* can be conceptually divided into two parts, an L*A*B* to CMY mapping and a CMY to CMYK mapping. The former is determined by the printer engine characteristics, and the latter is performed by UCR/GCR. For printer engines that exhibit high curvatures, the color mapping can be strongly nonlinear, even with a relatively smooth UCR/GCR function. This may result in unacceptably high interpolation error for certain color areas. In some digital printers certain color areas can include a two dimensional manifold in CMYK space that maps to the same color in L*A*B* space. Similar colors in this area can be made with widely different CMYK formulations, and conventional methods tend to give L*A*B* to CMYK mappings with large jumps in the CMYK formulation between adjacent nodes in the multi-dimensional LUT.
Nonlinearity can be reduced by filtering the mapping function using linear low-pass filters. However, filtering also causes deviation in color. Consequently, the resulting mapping becomes less accurate. Specifically, suppose LAB (i, j, k) is the designed L*A*B* color for grid (i, j, k) and CMYK′ (i, j, k) is the filtered CMYK value, CMYK′ (i, j, k) may not necessarily produce the exact LAB (i, j, k).
Also, people are often very demanding in regards to flesh-tone image quality produced by digital printers. In CMYK printing, it is often desirable to use minimum amount of black (hereinafter referred to as K) toner or ink in a relatively light flesh-tone color, as K tends to introduce graininess. This is particularly important for print engines that may be susceptible to image noise. A big challenge for minimizing K in flesh-tone is to not significantly raise interpolation error or sacrifice printer gamut. To retain printer gamut, it is necessary to apply significant amount of K in the dark image regions, eventually using the maximum amount of K at the gamut boundary. Consequently, reducing K in flesh-tone makes K transition from minimum to maximum sharper. This is often accompanied by increased interpolation error.
The present application provides a new and improved method and apparatus for performing a UCR/GCR procedure which overcomes at least the above-described problems.